package k1_exercise;

import java.util.Arrays;

public class Array_exercise_second {
    /**
     * 将两个已经排序的数组合并，合并之后，按大小进行排序
     * a={1,2,8,45,89};
     * b={3,4,6,9,30,66,100};
     * 合并后的结果应该是c={1,2,3,6,8,9,30,45,66,89,100};
     */
    public static void main(String[] args) {

        int[] nums_a = {1,2,8,45,89};
        int[] nums_b = {3,4,6,9,30,66,100};

        //初始化两个数组的索引
        int index_a = 0;
        int index_b = 0;

        //用两个原数组的长度之和创建新数组
        int[] nums_new = new int[nums_a.length+nums_b.length];

        for (int i = 0; i < nums_new.length; i++) {
            //如果a数组的索引位置达到了数组的长度，剩余的都由b数组进行赋值
            //因为每次赋值后，都会对索引进行++操作，这里比较的是长度，而不是长度-1
            if(index_a==nums_a.length){
                nums_new[i] = nums_b[index_b++];
            }else if(index_b==nums_b.length){
                nums_new[i] = nums_a[index_a++];
            }else{
                if(nums_a[index_a]<nums_b[index_b]){
                    nums_new[i] = nums_a[index_a++];
                }else{
                    nums_new[i] = nums_b[index_b++];
                }
            }
        }

        System.out.println(Arrays.toString(nums_new));
    }
}
